/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package videogest;


import com.mysql.jdbc.Connection;
import com.mysql.jdbc.Statement;
import java.sql.*;
import java.io.FileNotFoundException;
import java.io.IOException;
import persistencia.persistenciaEmpleado;

/**
 * Esta clase no tiene ningun atributo especifico, ya que los necesarios para un empleado
 * los hereda de la clase producto.
 * Esta clase esta realizada solamente por claridad en el diagrama de clases.
 * @author Jesus FC
 * @version 1.0
 */
public class Empleado extends Persona {

     public Empleado(String nombre, String direccion, String telefono, String email, String DNI, CategoriaPersona categoria) throws FileNotFoundException, IOException{
        super(nombre, direccion, telefono, email, Codigo.Empleado, DNI, categoria);
    }

    public Empleado(String codigoE, String clave, String nombre, String direccion, String telefono, String email, String dni, CategoriaPersona categoria, boolean baja) throws FileNotFoundException, IOException {
        super(codigoE, clave, nombre, direccion, telefono, email, dni, categoria, baja);
    }

     @Override
    public String toString(){
        String ret="\n";
        ret += "================================================\n";
        ret += "|              DATOS DEL EMPLEADO \n";
        ret += "================================================\n";
        ret += "|-- Codigo: "+super.getCodigo()+"\n";
        ret += "|-- Nombre: "+super.getNombre()+"\n";
        ret += "|-- Direccion: "+super.getDireccion()+"\n";
        ret += "|-- Telefono: "+super.getTelefono()+"\n";
        ret += "|-- Email: "+super.getEmail()+"\n";
        ret += "|-- DNI: "+super.getDNI()+"\n";
        ret += "================================================\n";
        return ret;
    }

     @Override
    public boolean equals(Object o){
        boolean res=false;
       if(o instanceof Empleado){
           Empleado p=(Empleado)o;
           if(this.getCodigo()== (p.getCodigo())){
               res=true;
           }
       }
       return res;
    }

    @Override
    public int hashCode() {
        return 0;
    }

    /**
     * Este metodo enviara a la base de datos un nuevo alta, osea ser, creara un nuevo
     * registro en la base de datos.
     */
    @Override
    public void alta() {

        persistenciaEmpleado.alta(this);
       
    }

    /**
     * Este metodo enviara a la base de datos una modificacion, osea ser, modificara
     * un registro de la base de datos
     */
    @Override
    public void modificar() {

        persistenciaEmpleado.modificar(this);
      
    }

    public static Empleado dameEmpleado(String codigo) throws IOException {
       
        return persistenciaEmpleado.dameEmpleado(codigo);
    }

    public static Empleado dameEmpleado(String codigo, String clave) throws IOException {
       
        return persistenciaEmpleado.dameEmpleado(codigo,clave);
    }
}
